package com.mall.b2c.hessian;

import com.mall.b2c.bean.ConsultBean;
import com.mall.common.hessian.BaseHessian;

/**
 * 会员扩展相关API
 * @author lzx
 *
 */
public interface MemberExtendHessian extends BaseHessian{

	/**
	 * 获取用户站内通知分页列表数据
	 * @param memberId
	 * @param page 当前页
	 * @param size 每页显示记录数
	 * @return
	 */
	String getSiteNoticePageData(Long memberId, Integer page, Integer size);
	
	/**
	 * 获取指定站内通知数据
	 * @param noticeTextId 站内通知内容id
	 * @return
	 */
	String getSiteNoticeData(Long noticeTextId, Long memberId);

	/**
	 * 删除指定站内通知消息
	 * @param noticeTextIds 站内通知内容ids
	 * @param memberId
	 */
	void deleteSiteNotice(Long[] noticeTextIds, Long memberId);
	
	/**
	 * 获取用户到货通知登记分页列表数据
	 * @param memberId
	 * @param page
	 * @param size
	 * @return
	 */
	String getStockNoticePageData(Long memberId, Integer page, Integer size);
	
	/**
	 * 保存到货通知登记
	 * @param goodsId  商品id
	 * @param quantity 登记需求数量
	 * @param memo 备注
	 * @param memberId 
	 * @return
	 */
	void saveStockNotice(Long goodsId, Integer quantity, String memo, Long memberId);
	
	/**
	 * 删除指定到货通知
	 * @param stockNoticeIds
	 * @param memberId
	 */
	void deleteStockNotice(Long[] stockNoticeIds, Long memberId);
	
	/**
	 * 获取浏览历史
	 * @param idsStr 商品id
	 * @return
	 */
	String getHistoryGoods(String idsStr);
	
	/**
	 * 获取咨询建议...分页列表数据
	 * @param memberId 会员id
	 * @param consultType 咨询类型 {@link com.mall.b2c.enums.ConsultType}
	 * @return
	 */
	String getConsultPagerData(Long memberId, Integer consultType, Integer page, Integer size);
	
	/**
	 * 获取指定咨询建议...数据
	 * @param consultId 咨询id
	 * @param memberId
	 * @return
	 */
	String getConsultData(Long consultId, Long memberId);
	
	/**
	 * 保存咨询、建议、投诉数据
	 * @param consult
	 * @return
	 */
	String saveConsultData(ConsultBean consult, Long memberId);
	
	/**
	 * 保存商品纠错数据
	 * @param goodsId 商品id
	 * @param content 内容
	 * @param memberId 
	 */
	void saveCorrectData(Long goodsId, String content, Long memberId);
	
	/**
	 * 删除咨询、建议、投诉、商品纠错数据
	 * @param consultIds
	 * @param memberId
	 */
	void deleteConsultData(Long[] consultIds, Long memberId);
}
